package main

import (
	"fmt"
	"simcard/utils"
)

type A struct {
}

func (a *A) getCurrentFunctionName() string {
	//pc, _, _, _ := runtime.Caller(0)
	//fmt.Println(runtime.FuncForPC(pc).Name())
	//parts := strings.Split(runtime.FuncForPC(pc).Name(), ".")
	//fmt.Println(parts)
	//funcNameWithReceiver := parts[len(parts)-1]
	//fmt.Println(funcNameWithReceiver)
	//return runtime.FuncForPC(pc).Name()
	fmt.Println(utils.GetFuncName())
	return utils.GetFuncName()
}

func main() {
	fmt.Println((&A{}).getCurrentFunctionName())
}
